﻿using BasicModuleOrm.Db_Context;

namespace BasicModuleOrm.ProductRespository.Respository
{
    public class SqlSugarRespository<T> : IRespository<T>, ISinglaton where T : class, new()
    {
        private SqlSugarContext _sqlSugarContext;

        public SqlSugarRespository(SqlSugarContext sqlSugarContext)
        {
            _sqlSugarContext = sqlSugarContext;
        }

        public T Add(T t)
        {
            // 1、添加商品
            _sqlSugarContext.sqlSugarClient.Insertable(t).ExecuteCommand();

            return t;
        }

        public void Delete(int id)
        {
            // 1、查询商品
            var p = _sqlSugarContext.sqlSugarClient.Queryable<T>().InSingle(id);

            // 2、更新商品
            _sqlSugarContext.sqlSugarClient.Deleteable<T>().In(id).ExecuteCommand();
        }

        public IEnumerable<T> GetAll()
        {
            //1、查询所有的商品
            var T = _sqlSugarContext.sqlSugarClient.Queryable<T>().ToList();
            return T;
        }

        public T Get(int id)
        {
            //1、查询所有的商品
            var T = _sqlSugarContext.sqlSugarClient.Queryable<T>().InSingle(id);

            //2、返回商品
            return T;
        }

        public void Update(int id, T t)
        {
            // 2、更新商品
            _sqlSugarContext.sqlSugarClient.Updateable(t).ExecuteCommand();

        }
    }
}
